import { Vue } from 'vue-property-decorator'
import { ComponentModel } from '..'

export declare class ITemplate extends Vue {
  getTemplateName(): string
  getMainData(): any
  refresh(): void
  buildDOMKey(cm: ComponentModel, index: number): string
  getMeta(vm: Vue, metaType: string, defaultValue?: any): any
  defaultRef(): string
  ref(key: string): Vue | Element | Vue[] | Element[]
  refs(): { [key: string]: Vue | Element | Vue[] | Element[] }
}

export declare class ITyperFormBasic extends ITemplate {
}

export declare class ITyperFormBasicDialog extends ITemplate {
  showDialog(params: any, dynamicModel: any): void
  hideDialog(): void
}

export declare class ITyperListBasic extends ITemplate {
}

export declare class ITyperListBasicDialog extends ITemplate {
  showDialog(dynamicModel: any): void
  hideDialog(): void
}

export declare class ITyperListCategory extends ITemplate {
}
